components/net-snmp/patches/062.22761186.patch
author Jiri Sasek <Jiri.Sasek@Oracle.COM>
Wed, 04 May 2016 14:21:51 -0700
changeset 5920 1e847165fde2
parent 5727 382d4e90640b
permissions -rw-r--r--
23210161 gamin fails to build on userland nightly (99)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5727
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     1
The patch has been taken from community and modifies directory creation code to happen after the domain selection code so that the directory creation code knows what directory to create.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     2
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     3
The details can be found in the following location
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     4
https://sourceforge.net/p/net-snmp/code/ci/b066a45975a505545b064c5492f7d7fe0a7623dd/
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     5
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     6
--- net-snmp-5.4.1/agent/mibgroup/agentx/master.c	2007-01-22 08:19:47.000000000 -0800
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     7
+++ copy_net-snmp-5.4.1/agent/mibgroup/agentx/master.c	2016-01-30 01:41:53.175843516 -0800
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     8
@@ -60,13 +60,6 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     9
     char *agentx_sockets;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    10
     char *cp1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    11
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    12
-#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    13
-    int agentx_dir_perm;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    14
-    int agentx_sock_perm;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    15
-    int agentx_sock_user;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    16
-    int agentx_sock_group;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    17
-#endif
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    18
-
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    19
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE) != MASTER_AGENT)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    20
         return;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    21
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    22
@@ -89,7 +82,6 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    23
         agentx_sockets = strdup("");
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    24
     }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    25
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    26
-
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    27
     DEBUGMSGTL(("agentx/master", "initializing...\n"));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    28
     snmp_sess_init(&sess);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    29
     sess.version = AGENTX_VERSION_1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    30
@@ -98,6 +90,18 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    31
                                       NETSNMP_DS_AGENT_AGENTX_TIMEOUT);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    32
     sess.retries = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    33
                                       NETSNMP_DS_AGENT_AGENTX_RETRIES);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    34
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    35
+#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    36
+    {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    37
+       int agentx_dir_perm =
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    38
+           netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    39
+                              NETSNMP_DS_AGENT_X_DIR_PERM);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    40
+       if (agentx_dir_perm == 0)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    41
+           agentx_dir_perm = NETSNMP_AGENT_DIRECTORY_MODE;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    42
+       netsnmp_unix_create_path_with_mode(agentx_dir_perm);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    43
+    }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    44
+#endif
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    45
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    46
     cp1 = agentx_sockets;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    47
     while (cp1) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    48
         netsnmp_transport *t;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    49
@@ -111,44 +115,15 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    50
         if (cp1 != NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    51
             *cp1++ = '\0';
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    52
 	}
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    53
-    
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    54
-        if (sess.peername[0] == '/') {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    55
-#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    56
-            /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    57
-             *  If this is a Unix pathname,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    58
-             *  try and create the directory first.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    59
-             */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    60
-            agentx_dir_perm = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    61
-                                                 NETSNMP_DS_AGENT_X_DIR_PERM);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    62
-            if (agentx_dir_perm == 0)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    63
-                agentx_dir_perm = NETSNMP_AGENT_DIRECTORY_MODE;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    64
-            if (mkdirhier(sess.peername, (mode_t)agentx_dir_perm, 1)) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    65
-                snmp_log(LOG_ERR,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    66
-                         "Failed to create the directory for the agentX socket: %s\n",
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    67
-                         sess.peername);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    68
-            }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    69
-#else
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    70
-            netsnmp_sess_log_error(LOG_WARNING,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    71
-                                   "unix domain support not available\n",
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    72
-                                   &sess);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    73
-#endif
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    74
-        }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    75
-    
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    76
-        /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    77
-         *  Otherwise, let 'snmp_open' interpret the string.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    78
-         */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    79
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    80
+       /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    81
+        *  Let 'snmp_open' interpret the descriptor.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    82
+        */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    83
         sess.local_port = AGENTX_PORT;      /* Indicate server & set default port */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    84
         sess.remote_port = 0;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    85
         sess.callback = handle_master_agentx_packet;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    86
         errno = 0;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    87
         t = netsnmp_transport_open_server("agentx", sess.peername);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    88
-        if (t == NULL && errno == EADDRINUSE) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    89
-            /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    90
-             * Could be a left-over socket (now deleted)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    91
-             * Try again
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    92
-             */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    93
-            t = netsnmp_transport_open_server("agentx", sess.peername);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    94
-        }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    95
         if (t == NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    96
             /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    97
              * diagnose snmp_open errors with the input netsnmp_session
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    98
@@ -169,41 +144,52 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    99
                 netsnmp_sess_log_error(LOG_WARNING, buf, &sess);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   100
             }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   101
         } else {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   102
-            session =
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   103
-                snmp_add_full(&sess, t, NULL, agentx_parse, NULL, NULL,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   104
-                              agentx_realloc_build, agentx_check_packet, NULL);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   105
-        }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   106
-        if (session == NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   107
-            netsnmp_transport_free(t);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   108
-        }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   109
-
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   110
 #ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   111
+        if (t->domain == netsnmp_UnixDomain && t->local != NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   112
         /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   113
          * Apply any settings to the ownership/permissions of the AgentX socket
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   114
          */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   115
-        agentx_sock_perm = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   116
-                                              NETSNMP_DS_AGENT_X_SOCK_PERM);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   117
-        agentx_sock_user = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   118
-                                              NETSNMP_DS_AGENT_X_SOCK_USER);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   119
-        agentx_sock_group = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   120
-                                               NETSNMP_DS_AGENT_X_SOCK_GROUP);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   121
-
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   122
-        if (agentx_sock_perm != 0)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   123
-            chmod(sess.peername, agentx_sock_perm);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   124
-        if (agentx_sock_user || agentx_sock_group) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   125
-            /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   126
-             * If either of user or group haven't been set,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   127
-             *  then leave them unchanged.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   128
-             */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   129
-            if (agentx_sock_user == 0 )
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   130
-                agentx_sock_user = -1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   131
-            if (agentx_sock_group == 0 )
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   132
-                agentx_sock_group = -1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   133
-            chown(sess.peername, agentx_sock_user, agentx_sock_group);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   134
+            int agentx_sock_perm = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   135
+                                                  NETSNMP_DS_AGENT_X_SOCK_PERM);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   136
+            int agentx_sock_user = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   137
+                                                  NETSNMP_DS_AGENT_X_SOCK_USER);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   138
+            int agentx_sock_group = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   139
+                                                  NETSNMP_DS_AGENT_X_SOCK_GROUP);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   140
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   141
+            char name[sizeof(struct sockaddr_un) + 1];
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   142
+            memcpy(name, t->local, t->local_length);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   143
+            name[t->local_length] = '\0';
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   144
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   145
+            if (agentx_sock_perm != 0)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   146
+                chmod(name, agentx_sock_perm);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   147
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   148
+            if (agentx_sock_user || agentx_sock_group) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   149
+                /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   150
+                 * If either of user or group haven't been set,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   151
+                 *  then leave them unchanged.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   152
+                 */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   153
+                if (agentx_sock_user == 0 )
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   154
+                    agentx_sock_user = -1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   155
+                if (agentx_sock_group == 0 )
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   156
+                    agentx_sock_group = -1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   157
+                chown(name, agentx_sock_user, agentx_sock_group);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   158
+            }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   159
         }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   160
 #endif
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   161
+        session =
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   162
+            snmp_add_full(&sess, t, NULL, agentx_parse, NULL, NULL,
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   163
+                          agentx_realloc_build, agentx_check_packet, NULL);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   164
+         }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   165
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   166
+        if (session == NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   167
+            netsnmp_transport_free(t);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   168
+        }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   169
     }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   170
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   171
+#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   172
+    netsnmp_unix_dont_create_path();
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   173
+#endif
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   174
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   175
     SNMP_FREE(agentx_sockets);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   176
     DEBUGMSGTL(("agentx/master", "initializing...   DONE\n"));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   177
 }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   178
--- net-snmp-5.4.1/include/net-snmp/library/snmpUnixDomain.h	2006-10-27 13:19:44.000000000 -0700
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   179
+++ copy_net-snmp-5.4.1/include/net-snmp/library/snmpUnixDomain.h	2016-01-29 03:24:45.623926107 -0800
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   180
@@ -41,9 +41,20 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   181
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   182
 void            netsnmp_unix_ctor(void);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   183
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   184
+/*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   185
+ * Support functions
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   186
+ */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   187
+void            netsnmp_unix_create_path_with_mode(int mode);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   188
+void            netsnmp_unix_dont_create_path(void);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   189
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   190
 #ifdef __cplusplus
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   191
 }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   192
 #endif
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   193
+#else
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   194
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   195
+#define netsnmp_unix_create_path_with_mode(x)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   196
+#define netsnmp_unix_dont_create_path()
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   197
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   198
 #endif                          /*NETSNMP_TRANSPORT_UNIX_DOMAIN */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   199
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   200
 #endif/*_SNMPUNIXDOMAIN_H*/
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   201
--- net-snmp-5.4.1/snmplib/snmpUnixDomain.c	2007-04-30 03:07:13.000000000 -0700
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   202
+++ copy_net-snmp-5.4.1/snmplib/snmpUnixDomain.c	2016-01-29 03:30:08.333575786 -0800
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   203
@@ -252,7 +252,25 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   204
     }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   205
 }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   206
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   207
+static int create_path = 0;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   208
+static mode_t create_mode;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   209
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   210
+/** If trying to create unix sockets in nonexisting directories then
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   211
+ *  try to create the directory with mask mode.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   212
+ */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   213
+void netsnmp_unix_create_path_with_mode(int mode)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   214
+{
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   215
+    create_path = 1;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   216
+    create_mode = mode;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   217
+}
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   218
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   219
+/** If trying to create unix sockets in nonexisting directories then
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   220
+ *  fail.
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   221
+ */
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   222
+void netsnmp_unix_dont_create_path(void)
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   223
+{
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   224
+    create_path = 0;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   225
+}
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   226
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   227
 /*
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   228
  * Open a Unix-domain transport for SNMP.  Local is TRUE if addr is the local
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   229
@@ -308,7 +326,7 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   230
     t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   231
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   232
     if (local) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   233
-      t->local = (u_char *)malloc(strlen(addr->sun_path));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   234
+        t->local = (u_char *)malloc(strlen(addr->sun_path));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   235
         if (t->local == NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   236
             netsnmp_transport_free(t);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   237
             return NULL;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   238
@@ -325,6 +343,16 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   239
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   240
         unlink(addr->sun_path);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   241
         rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   242
+
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   243
+        if (rc != 0 && errno == ENOENT && create_path) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   244
+            rc = mkdirhier(addr->sun_path, create_mode, 1);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   245
+            if (rc != 0) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   246
+                netsnmp_unix_close(t);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   247
+                netsnmp_transport_free(t);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   248
+                return NULL;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   249
+            }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   250
+            rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   251
+        }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   252
         if (rc != 0) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   253
             DEBUGMSGTL(("netsnmp_unix_transport",
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   254
                         "couldn't bind \"%s\", errno %d (%s)\n",
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   255
@@ -358,7 +386,7 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   256
         }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   257
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   258
     } else {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   259
-      t->remote = (u_char *)malloc(strlen(addr->sun_path));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   260
+        t->remote = (u_char *)malloc(strlen(addr->sun_path));
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   261
         if (t->remote == NULL) {
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   262
             netsnmp_transport_free(t);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   263
             return NULL;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   264
@@ -385,8 +413,8 @@
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   265
         sup->server.sun_family = AF_UNIX;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   266
         strcpy(sup->server.sun_path, addr->sun_path);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   267
         sup->local = 0;
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   268
-       netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   269
-       netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   270
+        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   271
+        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   272
     }
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   273
 
382d4e90640b 22761186 Error: Couldn't open a master agentx socket to listen on
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   274
     /*