use *SMBSERVER convention in smbwrapper to allow us to connect to
authorAndrew Tridgell <tridge@samba.org>
Sun, 4 Oct 1998 10:46:52 +0000 (10:46 +0000)
committerAndrew Tridgell <tridge@samba.org>
Sun, 4 Oct 1998 10:46:52 +0000 (10:46 +0000)
servers that we don't know the netbios name of.

source/lib/util.c
source/libsmb/clientgen.c
source/libsmb/nmblib.c
source/smbwrapper/smbw.c

index ccbaebf4ea61470d359789bc432f7cdab41c721e..c36eb8a66797e68e4445cbd90e5221a1a29bb799 100644 (file)
@@ -500,7 +500,7 @@ int name_mangle( char *In, char *Out, char name_type )
 
   /* Safely copy the input string, In, into buf[]. */
   (void)memset( buf, 0, 20 );
-  if( '*' == In[0] )
+  if (strcmp(In,"*") == 0)
     buf[0] = '*';
   else
     (void)slprintf( buf, sizeof(buf) - 1, "%-15.15s%c", In, name_type );
index e4aa15c6eb8b67812ec3440a75eb4049bb15330e..20c0c361664c7f6bab5f7ef3c4dbb93223f1b2bd 100644 (file)
@@ -2134,7 +2134,7 @@ BOOL cli_negprot(struct cli_state *cli)
   send a session request.  see rfc1002.txt 4.3 and 4.3.2
 ****************************************************************************/
 BOOL cli_session_request(struct cli_state *cli,
-                       struct nmb_name *calling, struct nmb_name *called)
+                        struct nmb_name *calling, struct nmb_name *called)
 {
        char *p;
        int len = 4;
index d08003133f1f8aa97803c5d8635e58f45936b5a5..87f483e9fd86aca097094229033f94febde7be9e 100644 (file)
@@ -248,7 +248,7 @@ static int put_nmb_name(char *buf,int offset,struct nmb_name *name)
   fstring buf1;
   char *p;
 
-  if (name->name[0] == '*') {
+  if (strcmp(name->name,"*") == 0) {
     /* special case for wildcard name */
     bzero(buf1,20);
     buf1[0] = '*';
index 0abe823e2995d9d07a2f76576791b4c8e2bf3710..054b694c4154c14f5cbad446626b946dec002d7f 100644 (file)
@@ -360,21 +360,27 @@ struct smbw_server *smbw_server(char *server, char *share)
                return NULL;
        }
 
+       make_nmb_name(&calling, global_myname, 0x0, "");
+       make_nmb_name(&called , server, 0x20, "");
+
+ again:
        /* have to open a new connection */
        if (!cli_initialise(&c) || !cli_connect(&c, server, NULL)) {
                errno = ENOENT;
                return NULL;
        }
 
-       make_nmb_name(&calling, global_myname, 0x0, "");
-       make_nmb_name(&called , server, 0x20, "");
-
        if (!cli_session_request(&c, &calling, &called)) {
                cli_shutdown(&c);
+               if (strcmp(called.name, "*SMBSERVER")) {
+                       make_nmb_name(&called , "*SMBSERVER", 0x20, "");
+                       goto again;
+               }
                errno = ENOENT;
                return NULL;
        }
 
+
        if (!cli_negprot(&c)) {
                cli_shutdown(&c);
                errno = ENOENT;