void send_browser_reset(int reset_type, const char *to_name, int to_type, struct in_addr to_ip)
{
- char outbuf[PSTRING_LEN];
+ char outbuf[1024];
char *p;
DEBUG(3,("send_browser_reset: sending reset request type %d to %s<%02x> IP %s.\n",
void broadcast_announce_request(struct subnet_record *subrec, struct work_record *work)
{
- char outbuf[PSTRING_LEN];
+ char outbuf[1024];
char *p;
work->needannounce = True;
time_t announce_interval,
const char *server_name, int server_type, const char *server_comment)
{
- char outbuf[PSTRING_LEN];
+ char outbuf[1024];
unstring upper_server_name;
char *p;
time_t announce_interval,
char *server_name, int server_type, char *server_comment)
{
- char outbuf[PSTRING_LEN];
+ char outbuf[1024];
char *p=outbuf;
memset(outbuf,'\0',sizeof(outbuf));
char *s;
const char *ptr;
static time_t last_time = 0;
- pstring s2;
+ char *s2;
struct in_addr addr;
char *comment;
int stype = lp_default_server_announce();
+ TALLOC_CTX *frame = NULL;
if (last_time && (t < (last_time + REMOTE_ANNOUNCE_INTERVAL)))
return;
comment = string_truncate(lp_serverstring(), MAX_SERVER_STRING_LENGTH);
- for (ptr=s; next_token(&ptr,s2,NULL,sizeof(s2)); ) {
- /* The entries are of the form a.b.c.d/WORKGROUP with
+ frame = talloc_stackframe();
+ for (ptr=s; next_token_talloc(frame,&ptr,&s2,NULL); ) {
+ /* The entries are of the form a.b.c.d/WORKGROUP with
WORKGROUP being optional */
const char *wgroup;
char *pwgroup;
else
wgroup = pwgroup;
- addr = *interpret_addr2(s2);
-
+ (void)interpret_addr2(&addr,s2);
+
/* Announce all our names including aliases */
/* Give the ip address as the address of our first
broadcast subnet. */
comment);
}
}
+ TALLOC_FREE(frame);
}
/****************************************************************************
**************************************************************************/
void browse_sync_remote(time_t t)
-{
+{
char *s;
const char *ptr;
- static time_t last_time = 0;
- pstring s2;
+ static time_t last_time = 0;
+ char *s2;
struct in_addr addr;
struct work_record *work;
- pstring outbuf;
+ char outbuf[1024];
char *p;
unstring myname;
-
+ TALLOC_CTX *frame = NULL;
+
if (last_time && (t < (last_time + REMOTE_ANNOUNCE_INTERVAL)))
return;
-
+
last_time = t;
s = lp_remote_browse_sync();
lp_workgroup(), FIRST_SUBNET->subnet_name ));
return;
}
-
+
if(!AM_LOCAL_MASTER_BROWSER(work)) {
DEBUG(5,("browse_sync_remote: We can only do this if we are a local master browser \
for workgroup %s on subnet %s.\n", lp_workgroup(), FIRST_SUBNET->subnet_name ));
return;
- }
+ }
memset(outbuf,'\0',sizeof(outbuf));
p = outbuf;
unstrcpy(myname, global_myname());
strupper_m(myname);
myname[15]='\0';
- push_pstring_base(p, myname, outbuf);
+ push_ascii(p, myname, sizeof(outbuf)-PTR_DIFF(p,outbuf)-1, STR_TERMINATE);
p = skip_string(outbuf,sizeof(outbuf),p);
- for (ptr=s; next_token(&ptr,s2,NULL,sizeof(s2)); ) {
+ frame = talloc_stackframe();
+ for (ptr=s; next_token_talloc(frame,&ptr,&s2,NULL); ) {
/* The entries are of the form a.b.c.d */
- addr = *interpret_addr2(s2);
+ (void)interpret_addr2(&addr,s2);
DEBUG(5,("announce_remote: Doing remote browse sync announce for server %s to IP %s.\n",
global_myname(), inet_ntoa(addr) ));
send_mailslot(True, BROWSE_MAILSLOT, outbuf,PTR_DIFF(p,outbuf),
global_myname(), 0x0, "*", 0x0, addr, FIRST_SUBNET->myip, DGRAM_PORT);
}
+ TALLOC_FREE(frame);
}