pkgsrc-ng/net/tcl-scotty/patches/patch-tnm_snmp_tnmSnmpTcl.c
2014-11-05 12:41:07 +01:00

413 lines
13 KiB
C

$NetBSD: patch-tnm_snmp_tnmSnmpTcl.c,v 1.1 2014/03/05 13:52:29 he Exp $
Constify.
Avoid use of interp->result.
--- tnm/snmp/tnmSnmpTcl.c.orig 2000-08-11 16:25:20.000000000 +0000
+++ tnm/snmp/tnmSnmpTcl.c
@@ -36,12 +36,12 @@ static Tcl_HashTable aliasTable;
static void
EvalCmdProc _ANSI_ARGS_((SNMP_Session *session, SNMP_PDU *pdu,
ClientData clientData));
-static char *
+static const char *
GetOption _ANSI_ARGS_((Tcl_Interp *interp, ClientData object,
int option));
static int
-SetOption _ANSI_ARGS_((Tcl_Interp *interp, ClientData object,
- int option, char *value));
+SetOption _ANSI_ARGS_((Tcl_Interp *interp, ClientData object,
+ int option, const char *value));
static int
Configured _ANSI_ARGS_((Tcl_Interp *interp, SNMP_Session *session));
@@ -50,37 +50,37 @@ DeleteAgentInterp _ANSI_ARGS_((ClientDat
static int
SnmpCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,
- int argc, char **argv));
+ int argc, const char **argv));
static int
SessionCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,
- int argc, char **argv));
+ int argc, const char **argv));
static int
WaitSession _ANSI_ARGS_((Tcl_Interp *interp, SNMP_Session *session,
- char *id));
+ const char *id));
static void
DestroySession _ANSI_ARGS_((ClientData clientdata));
static int
Request _ANSI_ARGS_((Tcl_Interp *interp, SNMP_Session *session,
- int pdu_type, int argc, char **argv));
+ int pdu_type, int argc, const char **argv));
static int
Walk _ANSI_ARGS_((Tcl_Interp *interp, SNMP_Session *session,
- int argc, char **argv));
+ int argc, const char **argv));
static int
ExpandTable _ANSI_ARGS_((Tcl_Interp *interp,
- char *tList, Tcl_DString *dst));
+ const char *tList, Tcl_DString *dst));
static int
ExpandScalars _ANSI_ARGS_((Tcl_Interp *interp,
- char *sList, Tcl_DString *dst));
+ const char *sList, Tcl_DString *dst));
static int
Table _ANSI_ARGS_((Tcl_Interp *interp, SNMP_Session *session,
- int argc, char **argv));
+ int argc, const char **argv));
static int
Scalars _ANSI_ARGS_((Tcl_Interp *interp, SNMP_Session *session,
- int argc, char **argv));
+ int argc, const char **argv));
static void
-ScalarSetVar _ANSI_ARGS_((Tcl_Interp *interp, char *vbl,
- char *varName, Tcl_DString *result));
+ScalarSetVar _ANSI_ARGS_((Tcl_Interp *interp, const char *vbl,
+ const char *varName, Tcl_DString *result));
/*
* The options used to configure snmp session objects.
@@ -197,7 +197,7 @@ EvalCmdProc(session, pdu, clientData)
*----------------------------------------------------------------------
*/
-static char *
+static const char *
GetOption(interp, object, option)
Tcl_Interp *interp;
ClientData object;
@@ -280,7 +280,7 @@ GetOption(interp, object, option)
Tcl_ResetResult(interp);
code = Tcl_GetInterpPath(interp, session->agentInterp);
if (code == TCL_OK) {
- return interp->result;
+ return Tcl_GetStringResult(interp);
}
return "";
case TNM_SNMP_OPT_TIMEOUT:
@@ -335,7 +335,7 @@ SetOption(interp, object, option, value)
Tcl_Interp *interp;
ClientData object;
int option;
- char *value;
+ const char *value;
{
SNMP_Session *session = (SNMP_Session *) object;
int num;
@@ -451,7 +451,7 @@ SetOption(interp, object, option, value)
{
Tcl_HashEntry *entryPtr;
int i, largc, code;
- char **largv, **argv;
+ const char **largv, **argv;
char *alias;
entryPtr = Tcl_FindHashEntry(&aliasTable, value);
if (! entryPtr) {
@@ -468,7 +468,7 @@ SetOption(interp, object, option, value)
return TCL_ERROR;
}
Tcl_SetHashValue(entryPtr, NULL);
- argv = (char **) ckalloc((largc + 3) * sizeof(char *));
+ argv = (const char **) ckalloc((largc + 3) * sizeof(char *));
argv[0] = session->name;
argv[1] = "configure";
for (i = 0; i < largc; i++) {
@@ -531,7 +531,7 @@ Configured(interp, session)
Tcl_Interp *interp;
SNMP_Session *session;
{
- char *name = Tcl_GetCommandName(interp, session->token);
+ const char *name = Tcl_GetCommandName(interp, session->token);
if (! session->version) {
Tcl_AppendResult(interp, "session \"", name,
@@ -660,7 +660,7 @@ SnmpCmd(clientData, interp, argc, argv)
ClientData clientData;
Tcl_Interp *interp;
int argc;
- char **argv;
+ const char **argv;
{
static char mibCmd[20];
SNMP_Session *session;
@@ -858,7 +858,7 @@ SessionCmd(clientData, interp, argc, arg
ClientData clientData;
Tcl_Interp *interp;
int argc;
- char **argv;
+ const char **argv;
{
SNMP_Session *session = (SNMP_Session *) clientData;
int code;
@@ -953,7 +953,7 @@ SessionCmd(clientData, interp, argc, arg
} else if (strcmp(argv[1], "inform") == 0) {
if (session->version == TNM_SNMPv1) {
- char *name = Tcl_GetCommandName(interp, session->token);
+ const char *name = Tcl_GetCommandName(interp, session->token);
Tcl_AppendResult(interp, "inform option not allowed on ",
"SNMPv1 session \"", name, "\"", (char *) NULL);
return TCL_ERROR;
@@ -1023,7 +1023,7 @@ SessionCmd(clientData, interp, argc, arg
}
} else {
- char *oidstr = Tnm_MibGetOid(argv[2], 0);
+ const char *oidstr = Tnm_MibGetOid(argv[2], 0);
Tnm_Oid *oid;
int code, oidlen;
@@ -1069,7 +1069,7 @@ SessionCmd(clientData, interp, argc, arg
}
if (! session->agentInterp) {
- char *name = Tcl_GetCommandName(interp, session->token);
+ const char *name = Tcl_GetCommandName(interp, session->token);
Tcl_AppendResult(interp, "invalid agent session \"",
name, "\"", (char *) NULL);
return TCL_ERROR;
@@ -1078,7 +1078,8 @@ SessionCmd(clientData, interp, argc, arg
(argc > 4) ? argv[4] : "");
if (code != TCL_OK) {
if (interp != session->agentInterp) {
- Tcl_SetResult(interp, session->agentInterp->result,
+ Tcl_SetResult(interp,
+ (char*)Tcl_GetStringResult(session->agentInterp),
TCL_VOLATILE);
Tcl_ResetResult(session->agentInterp);
}
@@ -1116,17 +1117,17 @@ static int
WaitSession(interp, session, request)
Tcl_Interp *interp;
SNMP_Session *session;
- char *request;
+ const char *request;
{
u_int id = 0;
- char *name = Tcl_GetCommandName(interp, session->token);
+ const char *name = Tcl_GetCommandName(interp, session->token);
if (! name) {
return TCL_OK;
}
if (request) {
- char *p;
+ const char *p;
for (p = request; isdigit(*p); p++) {
id = 10 * id + *p - '0';
}
@@ -1233,9 +1234,9 @@ Request(interp, session, pdu_type, argc,
SNMP_Session *session;
int pdu_type;
int argc;
- char **argv;
+ const char **argv;
{
- char *cmd = NULL;
+ const char *cmd = NULL;
SNMP_PDU _pdu;
SNMP_PDU *pdu = &_pdu;
@@ -1288,7 +1289,7 @@ Request(interp, session, pdu_type, argc,
if (Tnm_IsOid (*++argv)) {
pdu->trapOID = ckstrdup(*argv);
} else {
- char *tmp = Tnm_MibGetOid(*argv, 0);
+ const char *tmp = Tnm_MibGetOid(*argv, 0);
if (! tmp) {
Tcl_AppendResult(interp, "no object \"", *argv, "\"",
(char *) NULL);
@@ -1383,11 +1384,11 @@ Walk(interp, session, argc, argv)
Tcl_Interp *interp;
SNMP_Session *session;
int argc;
- char **argv;
+ const char **argv;
{
int i, j, k, result;
int oidc, respc;
- char **oidv = NULL, **respv = NULL;
+ const char **oidv = NULL, **respv = NULL;
SNMP_PDU _pdu, *pdu = &_pdu;
int numRepeaters = 0;
@@ -1424,7 +1425,7 @@ Walk(interp, session, argc, argv)
}
for (i = 0; i < oidc; i++) {
- char *tmp = Tnm_MibGetOid(oidv[i], 0);
+ const char *tmp = Tnm_MibGetOid(oidv[i], 0);
if (!tmp) {
Tcl_AppendResult(interp, "no object \"", oidv[i], "\"",
(char *) NULL);
@@ -1432,9 +1433,10 @@ Walk(interp, session, argc, argv)
Tcl_DStringFree(&pdu->varbind);
return TCL_ERROR;
}
- oidv[i] = ckalloc(strlen(tmp) + 2);
- strcpy(oidv[i], tmp);
- strcat(oidv[i], ".");
+ char *tmp2 = ckalloc(strlen(tmp) + 2);
+ strcpy(tmp2, tmp);
+ strcat(tmp2, ".");
+ oidv[i] = tmp2;
Tcl_DStringAppendElement(&pdu->varbind, tmp);
}
@@ -1468,7 +1470,7 @@ Walk(interp, session, argc, argv)
result = Tnm_SnmpEncode(interp, session, pdu, NULL, NULL);
if (result == TCL_ERROR
- && (strncmp(interp->result, "noSuchName ", 11) == 0)) {
+ && (strncmp(Tcl_GetStringResult(interp), "noSuchName ", 11) == 0)) {
result = TCL_OK;
goto loopDone;
}
@@ -1477,7 +1479,8 @@ Walk(interp, session, argc, argv)
}
if (respv) ckfree((char *) respv);
- result = Tcl_SplitList(interp, interp->result, &respc, &respv);
+ result = Tcl_SplitList(interp,
+ Tcl_GetStringResult(interp), &respc, &respv);
if (result != TCL_OK) {
goto loopDone;
}
@@ -1502,7 +1505,7 @@ Walk(interp, session, argc, argv)
Tcl_DStringFree(&pdu->varbind);
for (k = j * oidc; k < (j+1) * oidc; k++) {
int vbc;
- char **vbv;
+ const char **vbv;
result = Tcl_SplitList(interp, respv[k], &vbc, &vbv);
if (result != TCL_OK) {
goto loopDone;
@@ -1532,7 +1535,7 @@ Walk(interp, session, argc, argv)
} else if (result == TCL_ERROR) {
char msg[100];
sprintf(msg, "\n (\"%s walk\" body line %d)",
- session->name, interp->errorLine);
+ session->name, Tcl_GetErrorLine(interp));
Tcl_AddErrorInfo(interp, msg);
goto loopDone;
} else {
@@ -1556,7 +1559,7 @@ Walk(interp, session, argc, argv)
*/
if (result == TCL_ERROR
- && (strncmp(interp->result, "noSuchName", 10) == 0)) {
+ && (strncmp(Tcl_GetStringResult(interp), "noSuchName", 10) == 0)) {
result = TCL_OK;
}
@@ -1586,11 +1589,11 @@ Walk(interp, session, argc, argv)
static int
ExpandTable(interp, tList, dst)
Tcl_Interp *interp;
- char *tList;
+ const char *tList;
Tcl_DString *dst;
{
int i, argc, code;
- char **argv = NULL;
+ const char **argv = NULL;
Tnm_MibNode *nodePtr, *entryPtr = NULL, *tablePtr = NULL;
code = Tcl_SplitList(interp, tList, &argc, &argv);
@@ -1702,12 +1705,12 @@ Table(interp, session, argc, argv)
Tcl_Interp *interp;
SNMP_Session *session;
int argc;
- char **argv;
+ const char **argv;
{
int i, largc, code;
SNMP_PDU _pdu, *pdu = &_pdu;
Tcl_DString varList;
- char **largv;
+ const char **largv;
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # args: should be \"",
@@ -1791,11 +1794,11 @@ Table(interp, session, argc, argv)
static int
ExpandScalars(interp, sList, dst)
Tcl_Interp *interp;
- char *sList;
+ const char *sList;
Tcl_DString *dst;
{
int argc, code, i;
- char **argv = NULL;
+ const char **argv = NULL;
Tnm_MibNode *nodePtr;
Tnm_Oid oid[TNM_OIDMAXLEN];
int oidLen;
@@ -1881,13 +1884,13 @@ Scalars(interp, session, argc, argv)
Tcl_Interp *interp;
SNMP_Session *session;
int argc;
- char **argv;
+ const char **argv;
{
int i, largc, code;
SNMP_PDU _pdu, *pdu = &_pdu;
Tcl_DString varList;
Tcl_DString result;
- char **largv;
+ const char **largv;
if (argc != 3) {
Tcl_AppendResult(interp, "wrong # args: should be \"",
@@ -1941,7 +1944,7 @@ Scalars(interp, session, argc, argv)
Tcl_DStringLength(&varList));
code = Tnm_SnmpEncode(interp, session, pdu, NULL, NULL);
if (code == TCL_OK) {
- ScalarSetVar(interp, interp->result, argv[2], &result);
+ ScalarSetVar(interp, Tcl_GetStringResult(interp), argv[2], &result);
Tcl_DStringFree(&varList);
Tcl_DStringResult(interp, &result);
return TCL_OK;
@@ -1952,7 +1955,7 @@ Scalars(interp, session, argc, argv)
* talking to us. This saves some time-outs.
*/
- if (strcmp(interp->result, "noResponse") == 0) {
+ if (strcmp(Tcl_GetStringResult(interp), "noResponse") == 0) {
return TCL_ERROR;
}
@@ -1982,7 +1985,7 @@ Scalars(interp, session, argc, argv)
continue;
}
- ScalarSetVar(interp, interp->result, argv[2], &result);
+ ScalarSetVar(interp, Tcl_GetStringResult(interp), argv[2], &result);
}
ckfree((char *) largv);
Tcl_DStringFree(&varList);
@@ -2011,8 +2014,8 @@ Scalars(interp, session, argc, argv)
static void
ScalarSetVar(interp, vbl, varName, result)
Tcl_Interp *interp;
- char *vbl;
- char *varName;
+ const char *vbl;
+ const char *varName;
Tcl_DString *result;
{
int i, code, varBindSize;
@@ -2025,7 +2028,7 @@ ScalarSetVar(interp, vbl, varName, resul
for (i = 0; i < varBindSize; i++) {
Tnm_MibNode *nodePtr = Tnm_MibFindNode(varBindPtr[i].soid, NULL, 0);
- char *name = nodePtr ? nodePtr->label : varBindPtr[i].soid;
+ const char *name = nodePtr ? nodePtr->label : varBindPtr[i].soid;
if ((strcmp(varBindPtr[i].syntax, "noSuchObject") == 0)
|| (strcmp(varBindPtr[i].syntax, "noSuchInstance") == 0)