[97250] trunk/base/src/pextlib1.0/tracelib.c
cal at macports.org
cal at macports.org
Sat Sep 1 02:10:36 PDT 2012
Revision: 97250
https://trac.macports.org/changeset/97250
Author: cal at macports.org
Date: 2012-09-01 02:10:34 -0700 (Sat, 01 Sep 2012)
Log Message:
-----------
tracelib: check whether tcl eval was successful, print error if it wasn't
Modified Paths:
--------------
trunk/base/src/pextlib1.0/tracelib.c
Modified: trunk/base/src/pextlib1.0/tracelib.c
===================================================================
--- trunk/base/src/pextlib1.0/tracelib.c 2012-09-01 08:23:52 UTC (rev 97249)
+++ trunk/base/src/pextlib1.0/tracelib.c 2012-09-01 09:10:34 UTC (rev 97250)
@@ -93,6 +93,7 @@
static void sandbox_violation(int sock, const char * path);
static void ui_warn(const char * format, ...);
static void ui_info(const char * format, ...);
+static void ui_error(const char *format, ...);
#define MAX_SOCKETS ((FD_SETSIZE)-1)
@@ -321,43 +322,47 @@
char * port=0;
size_t len=1;
char resolution='!';
+ int tcl_retval;
Tcl_SetVar(interp, "path", path, 0);
- Tcl_Eval(interp, "registry::file_registered $path");
- port=strdup(Tcl_GetStringResult(interp));
+ // FIXME: Use C registry API
+ tcl_retval = Tcl_Eval(interp, "registry::file_registered $path");
+ port = strdup(Tcl_GetStringResult(interp));
if (!port) {
ui_warn("dep_check: memory allocation failed");
return;
}
+ if (tcl_retval != TCL_OK) {
+ ui_error("failed to run registry::file_registered \"%s\": %s", path, port);
+ }
Tcl_UnsetVar(interp, "path", 0);
- if(*port!='0'||port[1])
- {
- char * t;
+ if (tcl_retval == TCL_OK && (*port != '0' || port[1])) {
+ char *t;
- t=depends;
- for(;*t;t+=strlen(t)+1)
- {
- if(!strcmp(t, port))
- {
- resolution='+';
+ t = depends;
+ for (; *t; t += strlen(t) + 1) {
+ fprintf(stderr, "trace: %s =?= %s\n", t, port);
+ if (!strcmp(t, port)) {
+ resolution = '+';
break;
}
}
}
-
- if(resolution!='+') {
- if(*port=='0'&&!port[1])
+
+ if (resolution != '+') {
+ if (*port == '0' && !port[1]) {
ui_info("trace: access denied to %s (*unknown*)", path);
- else
+ } else {
ui_info("trace: access denied to %s (%s)", path, port);
+ }
}
free(port);
- if(send(sock, &len, sizeof(len), 0)==-1)
+ if (send(sock, &len, sizeof(len), 0) == -1)
ui_warn("tracelib send failed");
- if(send(sock, &resolution, 1, 0)==-1)
+ if (send(sock, &resolution, 1, 0) == -1)
ui_warn("tracelib send failed");
}
@@ -370,8 +375,9 @@
snprintf(tclcmd, sizeof(tclcmd), "ui_%s $warn", severity);
Tcl_SetVar(interp, "warn", buf, 0);
-
- Tcl_Eval(interp, tclcmd);
+ if (TCL_OK != Tcl_Eval(interp, tclcmd)) {
+ fprintf(stderr, "Error evaluating tcl statement `%s': %s\n", tclcmd, Tcl_GetStringResult(interp));
+ }
Tcl_UnsetVar(interp, "warn", 0);
}
@@ -381,7 +387,7 @@
va_list va;
va_start(va, format);
- ui_msg("warn", format, va);
+ ui_msg("warn", format, va);
va_end(va);
}
@@ -390,10 +396,17 @@
va_list va;
va_start(va, format);
- ui_msg("msg", format, va);
+ ui_msg("info", format, va);
va_end(va);
}
+static void ui_error(const char *format, ...) {
+ va_list va;
+ va_start(va, format);
+ ui_msg("error", format, va);
+ va_end(va);
+}
+
static int TracelibOpenSocketCmd(Tcl_Interp * in)
{
struct sockaddr_un sun;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120901/db0d94dd/attachment.html>
More information about the macports-changes
mailing list