1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

Remove a static, and "signal_received" needs to be sig_atomic_t

(This used to be commit 8acd4a202f)
This commit is contained in:
Volker Lendecke 2007-11-25 09:33:29 +01:00
parent 188daba1a7
commit 2b17840a0e

View File

@ -46,7 +46,7 @@
#include "librpc/gen_ndr/messaging.h" #include "librpc/gen_ndr/messaging.h"
#include "librpc/gen_ndr/ndr_messaging.h" #include "librpc/gen_ndr/ndr_messaging.h"
static int received_signal; static sig_atomic_t received_signal;
static NTSTATUS messaging_tdb_send(struct messaging_context *msg_ctx, static NTSTATUS messaging_tdb_send(struct messaging_context *msg_ctx,
struct server_id pid, int msg_type, struct server_id pid, int msg_type,
@ -118,12 +118,14 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
Form a static tdb key from a pid. Form a static tdb key from a pid.
******************************************************************/ ******************************************************************/
static TDB_DATA message_key_pid(struct server_id pid) static TDB_DATA message_key_pid(TALLOC_CTX *mem_ctx, struct server_id pid)
{ {
static char key[20]; char *key;
TDB_DATA kbuf; TDB_DATA kbuf;
slprintf(key, sizeof(key)-1, "PID/%s", procid_str_static(&pid)); key = talloc_asprintf(talloc_tos(), "PID/%s", procid_str_static(&pid));
SMB_ASSERT(key != NULL);
kbuf.dptr = (uint8 *)key; kbuf.dptr = (uint8 *)key;
kbuf.dsize = strlen(key)+1; kbuf.dsize = strlen(key)+1;
@ -289,10 +291,10 @@ static NTSTATUS messaging_tdb_send(struct messaging_context *msg_ctx,
{ {
struct messaging_array *msg_array; struct messaging_array *msg_array;
struct messaging_rec *rec; struct messaging_rec *rec;
TALLOC_CTX *mem_ctx;
NTSTATUS status; NTSTATUS status;
TDB_DATA key = message_key_pid(pid); TDB_DATA key;
TDB_CONTEXT *tdb = (TDB_CONTEXT *)backend->private_data; TDB_CONTEXT *tdb = (TDB_CONTEXT *)backend->private_data;
TALLOC_CTX *frame = talloc_stackframe();
/* NULL pointer means implicit length zero. */ /* NULL pointer means implicit length zero. */
if (!data->data) { if (!data->data) {
@ -306,16 +308,14 @@ static NTSTATUS messaging_tdb_send(struct messaging_context *msg_ctx,
SMB_ASSERT(procid_to_pid(&pid) > 0); SMB_ASSERT(procid_to_pid(&pid) > 0);
if (!(mem_ctx = talloc_init("message_send_pid"))) { key = message_key_pid(frame, pid);
return NT_STATUS_NO_MEMORY;
}
if (tdb_chainlock(tdb, key) == -1) { if (tdb_chainlock(tdb, key) == -1) {
TALLOC_FREE(mem_ctx); TALLOC_FREE(frame);
return NT_STATUS_LOCK_NOT_GRANTED; return NT_STATUS_LOCK_NOT_GRANTED;
} }
status = messaging_tdb_fetch(tdb, key, mem_ctx, &msg_array); status = messaging_tdb_fetch(tdb, key, talloc_tos(), &msg_array);
if (!NT_STATUS_IS_OK(status)) { if (!NT_STATUS_IS_OK(status)) {
goto done; goto done;
@ -329,7 +329,7 @@ static NTSTATUS messaging_tdb_send(struct messaging_context *msg_ctx,
goto done; goto done;
} }
if (!(rec = TALLOC_REALLOC_ARRAY(mem_ctx, msg_array->messages, if (!(rec = TALLOC_REALLOC_ARRAY(talloc_tos(), msg_array->messages,
struct messaging_rec, struct messaging_rec,
msg_array->num_messages+1))) { msg_array->num_messages+1))) {
status = NT_STATUS_NO_MEMORY; status = NT_STATUS_NO_MEMORY;
@ -356,12 +356,12 @@ static NTSTATUS messaging_tdb_send(struct messaging_context *msg_ctx,
if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) { if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
DEBUG(2, ("pid %s doesn't exist - deleting messages record\n", DEBUG(2, ("pid %s doesn't exist - deleting messages record\n",
procid_str_static(&pid))); procid_str_static(&pid)));
tdb_delete(tdb, message_key_pid(pid)); tdb_delete(tdb, message_key_pid(talloc_tos(), pid));
} }
done: done:
tdb_chainunlock(tdb, key); tdb_chainunlock(tdb, key);
TALLOC_FREE(mem_ctx); TALLOC_FREE(frame);
return status; return status;
} }
@ -374,10 +374,11 @@ static NTSTATUS retrieve_all_messages(TDB_CONTEXT *msg_tdb,
struct messaging_array **presult) struct messaging_array **presult)
{ {
struct messaging_array *result; struct messaging_array *result;
TDB_DATA key = message_key_pid(procid_self()); TDB_DATA key = message_key_pid(mem_ctx, procid_self());
NTSTATUS status; NTSTATUS status;
if (tdb_chainlock(msg_tdb, key) == -1) { if (tdb_chainlock(msg_tdb, key) == -1) {
TALLOC_FREE(key.dptr);
return NT_STATUS_LOCK_NOT_GRANTED; return NT_STATUS_LOCK_NOT_GRANTED;
} }
@ -393,6 +394,8 @@ static NTSTATUS retrieve_all_messages(TDB_CONTEXT *msg_tdb,
*presult = result; *presult = result;
} }
TALLOC_FREE(key.dptr);
return status; return status;
} }