char *str2 = skip_string(param,tpscnt,str1);
char *p = skip_string(param,tpscnt,str2);
char *QueueName = p;
+ fstring share_name;
unsigned int uLevel;
int count=0;
int snum;
return(True);
}
- snum = find_service(QueueName);
+ snum = find_service(QueueName, share_name);
if ( !(lp_snum_ok(snum) && lp_print_ok(snum)) )
return False;
}
-static bool srv_comp(struct srv_info_struct *s1,struct srv_info_struct *s2)
+static int srv_comp(struct srv_info_struct *s1,struct srv_info_struct *s2)
{
-#undef strcasecmp
- return strcasecmp(s1->name,s2->name);
+ return StrCaseCmp(s1->name,s2->name);
}
/****************************************************************************
DEBUG(4,("fill_srv_info[%d] %20s %8x %25s %15s\n",
i, s->name, s->type, s->comment, s->domain));
- if (data_len <= buf_len) {
+ if (data_len < buf_len) {
counted++;
fixed_len += f_len;
string_len += s_len;
return True;
}
-static bool srv_name_match(const char *n1, const char *n2)
+static int srv_name_match(const char *n1, const char *n2)
{
/*
* [MS-RAP] footnote <88> for Section 3.2.5.15 says:
* the server will return a list of servers that exist on
* the network greater than or equal to the FirstNameToReturn.
*/
- int ret = strcasecmp(n1, n2);
+ int ret = StrCaseCmp(n1, n2);
if (ret <= 0) {
return 0;
*/
for (;first > 0;) {
int ret;
- ret = strcasecmp(first_name,
+ ret = StrCaseCmp(first_name,
servers[first-1].name);
if (ret > 0) {
break;
DEBUG(4,("fill_srv_info[%d] %20s %8x %25s %15s\n",
i, s->name, s->type, s->comment, s->domain));
- if (data_len <= buf_len) {
+ if (data_len < buf_len) {
counted++;
fixed_len += f_len;
string_len += s_len;
char *p = skip_string(param,tpscnt,netname);
int uLevel = get_safe_SVAL(param,tpscnt,p,0,-1);
int snum;
+ fstring share_name;
if (!str1 || !str2 || !netname || !p) {
return False;
}
- snum = find_service(netname);
+ snum = find_service(netname, share_name);
if (snum < 0) {
return False;
}
if( lp_browseable( i ) && lp_snum_ok( i ) && (strlen(servicename_dos) < 13)) {
total++;
data_len += fill_share_info(conn,i,uLevel,0,&f_len,0,&s_len,0);
- if (data_len <= buf_len) {
+ if (data_len < buf_len) {
counted++;
fixed_len += f_len;
string_len += s_len;
return False;
}
pull_ascii_fstring(sharename,data);
- snum = find_service(sharename);
+ snum = find_service(sharename, sharename);
if (snum >= 0) { /* already exists */
res = ERRfilexists;
goto error_exit;
struct pack_desc desc;
print_queue_struct *queue=NULL;
print_status_struct status;
+ fstring share_name;
if (!str1 || !str2 || !p) {
return False;
return False;
}
- snum = find_service(name);
+ snum = find_service(name, share_name);
if ( !(lp_snum_ok(snum) && lp_print_ok(snum)) ) {
return False;
}
char *str2 = skip_string(param,tpscnt,str1);
char *p = skip_string(param,tpscnt,str2);
char* PrinterName = p;
+ fstring share_name;
int uLevel;
struct pack_desc desc;
int snum;
return False;
}
- snum = find_service(PrinterName);
+ snum = find_service(PrinterName, share_name);
if ( !(lp_snum_ok(snum) && lp_print_ok(snum)) ) {
*rdata_len = 0;
desc.errcode = NERR_DestNotFound;