Author: tridge
Date: 2005-02-11 07:20:16 +0000 (Fri, 11 Feb 2005)
New Revision: 5326

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5326

Log:
removed the charset conversion from the nbtname code, so we no longer
convert from/to DOS strings in NBT names. This will allow us to
support all foreign names as a WINS server, as long as they don't
contain a 0 byte.


Modified:
   branches/SAMBA_4_0/source/libcli/nbt/nbtname.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/nbt/nbtname.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/nbt/nbtname.c      2005-02-11 06:58:07 UTC 
(rev 5325)
+++ branches/SAMBA_4_0/source/libcli/nbt/nbtname.c      2005-02-11 07:20:16 UTC 
(rev 5326)
@@ -160,8 +160,6 @@
        uint32_t max_offset = offset;
        uint8_t *components[MAX_COMPONENTS];
        int i;
-       ssize_t ret;
-       void *p;
        uint8_t *scope;
 
        if (!(ndr_flags & NDR_SCALARS)) {
@@ -192,12 +190,7 @@
        status = decompress_name(components[0], &r->type);
        NT_STATUS_NOT_OK_RETURN(status);
 
-       ret = convert_string_talloc(ndr, CH_DOS, CH_UNIX, components[0], 
-                                   strlen(components[0])+1, &p);
-       if (ret <= 0) {
-               return NT_STATUS_BAD_NETWORK_NAME;
-       }
-       r->name = p;
+       r->name = components[0];
 
        /* combine the remaining components into the scope */
        scope = components[1];
@@ -206,16 +199,7 @@
                NT_STATUS_HAVE_NO_MEMORY(scope);
        }
 
-       if (scope) {
-               ret = convert_string_talloc(ndr, CH_DOS, CH_UNIX, scope, 
-                                           strlen(scope)+1, &p);
-               if (ret <= 0) {
-                       return NT_STATUS_BAD_NETWORK_NAME;
-               }
-               r->scope = p;
-       } else {
-               r->scope = NULL;
-       }
+       r->scope = scope;
 
        return NT_STATUS_OK;
 }
@@ -227,31 +211,18 @@
 {
        uint_t num_components;
        uint8_t *components[MAX_COMPONENTS];
-       void *ptr;
        char *dname, *dscope=NULL, *p;
        uint8_t *cname;
-       ssize_t ret;
        int i;
 
        if (!(ndr_flags & NDR_SCALARS)) {
                return NT_STATUS_OK;
        }
 
-       /* convert to DOS format */
-       ret = convert_string_talloc(ndr, CH_UNIX, CH_DOS, r->name, 
-                                   strlen(r->name)+1, &ptr);
-       if (ret <= 0) {
-               return NT_STATUS_BAD_NETWORK_NAME;
-       }
-       dname = strupper_talloc(ndr, ptr);
+       dname = strupper_talloc(ndr, r->name);
        NT_STATUS_HAVE_NO_MEMORY(dname);
        if (r->scope) {
-               ret = convert_string_talloc(ndr, CH_UNIX, CH_DOS, r->scope, 
-                                           strlen(r->scope)+1, &ptr);
-               if (ret <= 0) {
-                       return NT_STATUS_BAD_NETWORK_NAME;
-               }
-               dscope = strupper_talloc(ndr, ptr);
+               dscope = strupper_talloc(ndr, r->scope);
                NT_STATUS_HAVE_NO_MEMORY(dscope);
        }
 

Reply via email to