יום שני, מרץ 25, 2013

כישלון בטעינת מחיצות דרך סמבה

שמתי לב שבדביאן SID טעינה אוטומטית של תיקיות משותפות אינה עובדה יותר עם ההגדרות ישנות.
לאחר מספר ימים של חיפוש בתיעוד עברתי על הקוד של mount.cifs.c וגיליתי לתדהמתי כי הפורמט השתנה ל :
user=username
pass=password

(הפעולה התקבלה למרות מה שרשום בתיעוד).

טיול לערוץ הסמבה בעלה החופשי גילה לי כי החבילה האחראית על פעולות העיגון הופרדה מה שמייצר מצב תאורטי שבעת שידרוג cifs.ko (כן בעת שידרוג קרנל) יגרום למערכת בשגיאות מוזרות בעת עגינה כגון כישלון מחיצה לקריאה בלבד כאשר יש סיסמה לא נכונה.

עידכון של cifs-utils ל 5.5 עם קרנל 3.2 בדביאן פתר את הבעיה, אולם לאחר מכן הלכתי להמשיך לטייל בקוד וגיליתי לתומי כי שני מבני ההגדרה שעובדים מה שהטריד אותי (למה התיעוד אומר א' כאשר בפועל קורה ב' (ב' ⊂ א') ).

ואז לגמרי במקרה אני רואה :
 
       /* tell the caller which value target points to */
        if (strncasecmp("user", line, 4) == 0)
                return CRED_USER;
        if (strncasecmp("pass", line, 4) == 0)
                return CRED_PASS;
        if (strncasecmp("dom", line, 3) == 0)
                return CRED_DOM;

שזה כנראה הולכת להפוך לדוגמה של מה לא לעשות בבקשה אצלנו, התרגלתי לכתוב שבניגוד לחלק מהמקומות דואג שכל ילד יוכל להבין מה הולך לראות ואיפה יש באג פוטנציאלי (חוסר התאמה) עם תיעוד.

וזה ילדים מה קורה כשבוריס כולה היה צריך לעשות להבין pam_mount הפסיק לעבוד אצלו.

אין תגובות:

הוסף רשומת תגובה