summaryrefslogtreecommitdiffstats
path: root/dmidecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'dmidecode.c')
-rw-r--r--dmidecode.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/dmidecode.c b/dmidecode.c
index 1d4b8e1..d3dfe94 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -76,24 +76,24 @@ static PyObject *dmi_string_py(struct dmi_header *dm, u8 s) {
char *bp=(char *)dm->data;
size_t i, len;
- if(s==0) return PyString_FromString("Not Specified");
-
- bp += dm->length;
- while(s>1 && *bp) {
- bp += strlen(bp);
- bp++;
- s--;
- }
-
- if(!*bp) return PyString_FromString(bad_index);
+ PyObject *data;
- /* ASCII filtering */
- len=strlen(bp);
- for(i=0; i<len; i++)
- if(bp[i]<32 || bp[i]==127)
- bp[i]='.';
+ if(s==0) data = PyString_FromString("Not Specified");
+ else {
+ bp += dm->length;
+ while(s>1 && *bp) { bp += strlen(bp); bp++; s--; }
- return PyString_FromString(bp);
+ if(!*bp) data = PyString_FromString(bad_index);
+ else {
+ /* ASCII filtering */
+ len=strlen(bp);
+ for(i=0; i<len; i++)
+ if(bp[i]<32 || bp[i]==127)
+ bp[i]='.';
+ data = PyString_FromString(bp);
+ }
+ }
+ return data;
}
const char *dmi_string(struct dmi_header *dm, u8 s) {
@@ -4345,7 +4345,12 @@ void dmi_decode(struct dmi_header *h, u16 ver, PyObject* pydata) {
break;
case 126: /* 3.3.41 Inactive */
- catsprintf(_, "Inactive", NULL);
+ NEW_METHOD = 1;
+ caseData = PyDict_New();
+
+ _val = Py_None;
+ PyDict_SetItemString(caseData, "Inactive", _val);
+ Py_DECREF(_val);
break;
case 127: /* 3.3.42 End Of Table */