Changeset 307 in code for trunk/db.go
- Timestamp:
- Jun 2, 2020, 9:24:22 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/db.go
r284 r307 21 21 Username string 22 22 Password string 23 } 24 25 // TLS client certificate authentication. 26 External struct { 27 // X.509 certificate in DER form. 28 CertBlob []byte 29 // PKCS#8 private key in DER form. 30 PrivKeyBlob []byte 23 31 } 24 32 } … … 69 77 sasl_plain_username VARCHAR(255), 70 78 sasl_plain_password VARCHAR(255), 79 sasl_external_cert BLOB DEFAULT NULL, 80 sasl_external_key BLOB DEFAULT NULL, 71 81 FOREIGN KEY(user) REFERENCES User(username), 72 82 UNIQUE(user, addr, nick) … … 88 98 "ALTER TABLE Network ADD COLUMN connect_commands VARCHAR(1023)", 89 99 "ALTER TABLE Channel ADD COLUMN detached INTEGER NOT NULL DEFAULT 0", 100 "ALTER TABLE Network ADD COLUMN sasl_external_cert BLOB DEFAULT NULL", 101 "ALTER TABLE Network ADD COLUMN sasl_external_key BLOB DEFAULT NULL", 90 102 } 91 103 … … 239 251 240 252 rows, err := db.db.Query(`SELECT id, name, addr, nick, username, realname, pass, 241 connect_commands, sasl_mechanism, sasl_plain_username, sasl_plain_password 253 connect_commands, sasl_mechanism, sasl_plain_username, sasl_plain_password, 254 sasl_external_cert, sasl_external_key 242 255 FROM Network 243 256 WHERE user = ?`, … … 254 267 var saslMechanism, saslPlainUsername, saslPlainPassword *string 255 268 err := rows.Scan(&net.ID, &name, &net.Addr, &net.Nick, &username, &realname, 256 &pass, &connectCommands, &saslMechanism, &saslPlainUsername, &saslPlainPassword) 269 &pass, &connectCommands, &saslMechanism, &saslPlainUsername, &saslPlainPassword, 270 &net.SASL.External.CertBlob, &net.SASL.External.PrivKeyBlob) 257 271 if err != nil { 258 272 return nil, err … … 294 308 saslPlainUsername = toStringPtr(network.SASL.Plain.Username) 295 309 saslPlainPassword = toStringPtr(network.SASL.Plain.Password) 310 network.SASL.External.CertBlob = nil 311 network.SASL.External.PrivKeyBlob = nil 312 case "EXTERNAL": 313 // keep saslPlain* nil 296 314 default: 297 315 return fmt.Errorf("soju: cannot store network: unsupported SASL mechanism %q", network.SASL.Mechanism) … … 303 321 _, err = db.db.Exec(`UPDATE Network 304 322 SET name = ?, addr = ?, nick = ?, username = ?, realname = ?, pass = ?, connect_commands = ?, 305 sasl_mechanism = ?, sasl_plain_username = ?, sasl_plain_password = ? 323 sasl_mechanism = ?, sasl_plain_username = ?, sasl_plain_password = ?, 324 sasl_external_cert = ?, sasl_external_key = ? 306 325 WHERE id = ?`, 307 326 netName, network.Addr, network.Nick, netUsername, realname, pass, connectCommands, 308 saslMechanism, saslPlainUsername, saslPlainPassword, network.ID) 327 saslMechanism, saslPlainUsername, saslPlainPassword, 328 network.SASL.External.CertBlob, network.SASL.External.PrivKeyBlob, 329 network.ID) 309 330 } else { 310 331 var res sql.Result 311 332 res, err = db.db.Exec(`INSERT INTO Network(user, name, addr, nick, username, 312 333 realname, pass, connect_commands, sasl_mechanism, sasl_plain_username, 313 sasl_plain_password )314 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )`,334 sasl_plain_password, sasl_external_cert, sasl_external_key) 335 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, 315 336 username, netName, network.Addr, network.Nick, netUsername, realname, pass, connectCommands, 316 saslMechanism, saslPlainUsername, saslPlainPassword) 337 saslMechanism, saslPlainUsername, saslPlainPassword, network.SASL.External.CertBlob, 338 network.SASL.External.PrivKeyBlob) 317 339 if err != nil { 318 340 return err
Note:
See TracChangeset
for help on using the changeset viewer.