summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/util.c2
-rw-r--r--source3/libsmb/clientgen.c2
-rw-r--r--source3/libsmb/nmblib.c2
-rw-r--r--source3/smbwrapper/smbw.c12
4 files changed, 12 insertions, 6 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index ccbaebf4ea..c36eb8a667 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -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 );
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index e4aa15c6eb..20c0c36166 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -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;
diff --git a/source3/libsmb/nmblib.c b/source3/libsmb/nmblib.c
index d08003133f..87f483e9fd 100644
--- a/source3/libsmb/nmblib.c
+++ b/source3/libsmb/nmblib.c
@@ -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] = '*';
diff --git a/source3/smbwrapper/smbw.c b/source3/smbwrapper/smbw.c
index 0abe823e29..054b694c41 100644
--- a/source3/smbwrapper/smbw.c
+++ b/source3/smbwrapper/smbw.c
@@ -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;